1
Au-delà du simple matching
AI034Lesson 18
00:00

En Rust, le matching de motifs n'est pas seulement une branche du flux de contrôle—c'est véritablement l'architecture de l'affectation. Chaque fois que vous déclarez une variable ou définissez une fonction, vous êtes en train de faire un matching de motifs.

1. L'identité de l'affectation

Lorsque nous écrivons let x = 5;, nous ne faisons pas seulement une affectation de valeur. Nous comparons la valeur 5 avec le motif irréfutablex. Puisque x est un nom qui peut représenter n'importe quelle valeur, la correspondance réussit toujours et crée une liaison locale.

2. Paramètres structurés (Liste 18-6)

Peut-être la révélation la plus profonde est que les signatures de fonction sont des motifs. Dans la signature fn foo(x: i32), le code attend un i32 et utilise le motif x pour lier l'argument entrant. Cela signifie que chaque entrée de fonction est essentiellement un événement de correspondance à un seul bras.

let x = 5;Liaison localefn foo(x: i32)Paramètre de fonctionLOGIQUE SIMILAIREMotif : Lie l'argument à 'x'

3. Universalité des motifs

Les motifs vont au-delà de match. Ils apparaissent dans for boucles (déconstruction des tuples), while let conditions, et même if let expressions. Ce Liaison locale principe garantit que le code Rust est constamment expressif, que vous extrayez des données d'une structure ou itériez sur une table de hachage.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>